printing: Don't double free connection to CUPS
authorMarek Kasik <mkasik@redhat.com>
Thu, 12 Dec 2013 17:11:39 +0000 (18:11 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 14 Dec 2013 21:33:02 +0000 (16:33 -0500)
Don't call httpClose() on http connections which are created
outside of GtkCupsRequest in GtkCupsRequest's functions.

https://bugzilla.gnome.org/show_bug.cgi?id=720338

modules/printbackends/cups/gtkcupsutils.c

index f0bb951b5d4c62a00d178e53464bf8b8916de97a..da3436efb86992788d3d2af011c90c67270e45c0 100644 (file)
@@ -1130,13 +1130,14 @@ _post_check (GtkCupsRequest *request)
         }
 
       request->poll_state = GTK_CUPS_HTTP_IDLE;
-       
-      httpFlush (request->http); 
-      
       request->last_status = HTTP_CONTINUE;
-      httpClose (request->http);
+
+      httpFlush (request->http);
+      if (request->own_http)
+        httpClose (request->http);
       request->http = NULL;
-      return;  
+
+      return;
     }
   else
     {
@@ -1398,12 +1399,14 @@ _get_check (GtkCupsRequest *request)
         }
 
       request->poll_state = GTK_CUPS_HTTP_IDLE;
-      httpFlush (request->http);
-      httpClose (request->http);
       request->last_status = HTTP_CONTINUE;
+
+      httpFlush (request->http);
+      if (request->own_http)
+        httpClose (request->http);
       request->http = NULL;
-      return;
 
+      return;
     }
   else
     {